import cv2
from ultralytics import YOLO

# 加载预训练的YOLOv8模型（自动下载或指定本地权重）
model = YOLO("yolov11n.pt")  # 使用yolov8n.pt或yolov8s.pt等

# 打开摄像头
cap = cv2.VideoCapture(0)

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    
    # YOLO推理（简化版）
    results = model.predict(frame, verbose=False, classes=[0])  # classes=[0]表示只检测person
    
    # 遍历检测结果
    for box in results[0].boxes:
        if box.conf[0] > 0.5:  # 置信度阈值
            print(f"[检测到人] 置信度: {box.conf[0]:.2f}, 位置: {box.xyxy[0].tolist()}")
    
    # 可选：实时显示画面（按Q退出）
    cv2.imshow("Camera", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()